<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
  <head>
    <link href="prettify.css" type="text/css" rel="stylesheet" />
    <link href="styles.css" type="text/css" rel="stylesheet" />
    <script type="text/javascript" src="prettify.js"></script>
    <title>Version history</title>
  </head>
  <body onload="prettyPrint()">
    <h1>Version history</h1>
    <p>Public API changes from 1.0.0-beta1 onwards. See the <a href="http://code.google.com/p/noda-time/source/list">project repository</a> for
more details.</p>

<h2>1.0.0-beta2, released 2012-08-04 with tzdb 2012e</h2>

<ul>
<li>Overhaul of how to get a <code>DateTimeZone</code> from an ID:
<ul>
<li><code>IDateTimeZoneProvider</code> (SPI for time zones) renamed to
<code>IDateTimeZoneSource</code>, along with similar renaming for the built-in
sources</li>
<li>New interface <code>IDateTimeZoneProvider</code> aimed at <em>callers</em>, with caching
assumed</li>
<li>New class <code>DateTimeZoneProviders</code> with static properties to access the
built-in providers: TZDB, BCL and default (currently TZDB)</li>
<li>Removed various <code>DateTimeZone</code> static methods in favour of always going
via an <code>IDateTimeZoneProvider</code> implementation</li>
<li><code>DateTimeZoneCache</code> now public and implements <code>IDateTimeZoneProvider</code></li>
</ul></li>
<li><code>DateTimeZone</code> no longer has internal abstract methods, making third-party
implementations possible (<a href="http://code.google.com/p/noda-time/issues/detail?id=77">issue 77</a>)</li>
<li><code>DateTimeZone</code> now implements <code>IEquatable&lt;DateTimeZone&gt;</code>, and documents what
it means for time zones to be equal (<a href="http://code.google.com/p/noda-time/issues/detail?id=81">issue 81</a>)</li>
<li>New core type: <code>OffsetDateTime</code> representing a local date/time and an offset
from UTC, but not full time zone information</li>
<li>Added a new standard offset pattern of <code>G</code>, which is like <code>g</code> but using
"Z" for zero; also available as <code>OffsetPattern.GeneralInvariantPatternWithZ</code></li>
<li><code>Period</code> and <code>PeriodBuilder</code> no longer differentiate between absent and zero
components (to the extent that they did at all): <code>Units</code> has been removed
from <code>Period</code>, period formatting now omits all zero values unconditionally,
and the <code>Year</code> (etc) properties on <code>PeriodBuilder</code> are no longer nullable
(<a href="http://code.google.com/p/noda-time/issues/detail?id=90">issue 90</a>)</li>
<li>Removed the BCL parsing methods and some of the BCL formatting methods from
<code>Instant</code>, <code>LocalDate</code>, <code>LocalDateTime</code>, and <code>Offset</code> in favour of the
pattern-based API (<a href="http://code.google.com/p/noda-time/issues/detail?id=87">issue 87</a>)</li>
<li><p><code>Duration.ToString()</code> and <code>Interval.ToString()</code> now return more descriptive
text</p></li>
<li><p>Removed <code>DateTimeZone.GetSystemDefaultOrNull()</code>; callers should use the
provider's <code>GetSystemDefault()</code> method and (if necessary) catch the
<code>TimeZoneNotFoundException</code> that it can throw (<a href="http://code.google.com/p/noda-time/issues/detail?id=61">issue 61</a>)</p></li>
<li>Removed <code>DateTimeZone.UtcId</code> and <code>DateTimeZone.IsFixed</code> (issues <a href="http://code.google.com/p/noda-time/issues/detail?id=64">64</a>
and <a href="http://code.google.com/p/noda-time/issues/detail?id=62">62</a>)</li>
<li>Removed most of the convenience static properties on <code>Duration</code> (e.g.
<code>Duration.OneStandardDay</code>) in favour of the existing static methods; removed
<code>MinValue</code> and <code>MaxValue</code>, and added <code>Epsilon</code> (<a href="http://code.google.com/p/noda-time/issues/detail?id=70">issue 70</a>)</li>
<li>Removed <code>Instant.BeginningOfTimeLabel</code> and <code>Instant.EndOfTimeLabel</code></li>
<li><code>Instant.InIsoUtc</code> renamed to <code>InUtc</code></li>
<li><code>Instant.UnixEpoch</code> moved to <code>NodaConstants.UnixEpoch</code>;
<code>NodaConstants.DateTimeEpochTicks</code> replaced by <code>BclEpoch</code></li>
<li>Added <code>Instant.PlusTicks()</code></li>
<li><code>LocalDate.LocalDateTime</code> property changed to <code>LocalDate.AtMidnight()</code> method
(<a href="http://code.google.com/p/noda-time/issues/detail?id=56">issue 56</a>)</li>
<li><code>LocalTime</code> now implements <code>IComparable&lt;LocalTime&gt;</code> (<a href="http://code.google.com/p/noda-time/issues/detail?id=51">issue 51</a>)</li>
<li>Added a <code>LocalTime</code> constructor taking hours and minutes (<a href="http://code.google.com/p/noda-time/issues/detail?id=53">issue 53</a>)</li>
<li>Removed "component" properties from <code>Offset</code>, and renamed the "total"
properties to just <code>Ticks</code> and <code>Milliseconds</code></li>
<li>Removed <code>Offset.Create()</code> methods (and moved them in slightly different form
in a new internal <code>TestObjects</code> class in <code>NodaTime.Test</code>)</li>
<li>Added <code>Period.ToDuration()</code> (<a href="http://code.google.com/p/noda-time/issues/detail?id=55">issue 55</a>) and <code>Period.CreateComparer()</code>
(<a href="http://code.google.com/p/noda-time/issues/detail?id=69">issue 69</a>)</li>
<li><code>Period.Empty</code> renamed to <code>Period.Zero</code> (as part of <a href="http://code.google.com/p/noda-time/issues/detail?id=90">issue 90</a>)</li>
<li><code>PeriodBuilder</code> no longer implements <code>IEquatable&lt;PeriodBuilder&gt;</code>
(<a href="http://code.google.com/p/noda-time/issues/detail?id=91">issue 91</a>)</li>
<li>Removed <code>SystemClock.SystemNow</code> in favour of using <code>SystemClock.Instance.Now</code>
if you really have to</li>
<li>Added <code>ZonedDateTime.ToOffsetDateTime()</code>, which returns the <code>OffsetDateTime</code>
equivalent to a <code>ZonedDateTime</code></li>
<li><p>Removed the Buddhist <code>Era</code> (as there is no Buddhist calendar implementation)</p></li>
<li><p><code>NodaTime.Testing.StubClock</code> renamed to <code>FakeClock</code>, and gains an
auto-advance option (issues <a href="http://code.google.com/p/noda-time/issues/detail?id=72">72</a> and <a href="http://code.google.com/p/noda-time/issues/detail?id=73">73</a>)</p></li>
<li><code>NodaTime.Testing.TimeZones.SingleTransitionZone</code> renamed to
<code>SingleTransitionDateTimeZone</code></li>
</ul>

<h2>1.0.0-beta1, released 2012-04-12 with tzdb 2012c</h2>

<ul>
<li>Initial beta release</li>
</ul>

  </body>
</html>
